JUNIPER-ANALYZER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32 
        FROM SNMPv2-SMI
    TruthValue, DisplayString
        FROM SNMPv2-TC
    jnxExAnalyzer
        FROM JUNIPER-EX-SMI;

jnxAnalyzerMIB MODULE-IDENTITY
    LAST-UPDATED "200705221000Z"
    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
            "        Juniper Technical Assistance Center
                     Juniper Networks, Inc.
                     1194 N. Mathilda Avenue
                     Sunnyvale, CA 94089
                     E-mail: support@juniper.net"

    DESCRIPTION
            "This is Juniper Networks' implementation of enterprise specific 
            MIB for Analyzer and Remote Analyzer. Port mirroring is widely 
            used in enterprise switches to send a copy of all or sampled 
            packets seen on a port to an anlyzer on the same or different 
            switch."
    ::= { jnxExAnalyzer 1 }

jnxAnalyzerMIBObjects      OBJECT IDENTIFIER ::= { jnxAnalyzerMIB 1 }

-- The Analyzer Table

jnxAnalyzerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF JnxAnalyzerEntry
    MAX-ACCESS  not-accessible  
    STATUS      current
    DESCRIPTION 
        "Network traffic passing through ports is analyzed by sending a
        copy of the traffic to another port on the same or different switch. 
        This table contains the analyzer parameters."
    ::= { jnxAnalyzerMIBObjects 1 }

jnxAnalyzerEntry OBJECT-TYPE
    SYNTAX      JnxAnalyzerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row instance contains the Anlayzer Name, Analyzer Status, Mirroring 
        Ratio, Loss Priority."
    INDEX { jnxAnalyzerName }
    ::= { jnxAnalyzerTable 1 }

JnxAnalyzerEntry ::=
    SEQUENCE {
        jnxAnalyzerName         DisplayString,
        jnxAnalyzerStatus       TruthValue,
        jnxMirroringRatio       Unsigned32,
        jnxLossPriority         INTEGER
    }

jnxAnalyzerName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..255))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies a unique Anlayzer configured on the switch." 
    ::= { jnxAnalyzerEntry 1 }

jnxAnalyzerStatus OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies whether the mirroring associated with a 
        particular analyzer is enabled or disabled."
    ::= { jnxAnalyzerEntry 2 }

jnxMirroringRatio OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object will specify the mirroring ratio. User can configure 
        the analyzer to mirror only one out of X packets [1:X packets] in 
        the ingress/egress side based on whether the port is configured for
        ingress or egress mirroring. The configuration supports a range from
        1: X [0 <= X <= 2047].Default value is 1."
    DEFVAL { 1 }
    ::= { jnxAnalyzerEntry 3 }

jnxLossPriority OBJECT-TYPE
    SYNTAX      INTEGER {
        low (0),
        high (1) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The analyzer port may be congested when the number of 
        packets exceeds the bandwidth of the analyzer port. So the 
        loss-priority parameter is enabled. The switched packets 
        will not get affected by this. The value 0 corresponds to low 
        priority.The value 1 corresponds to high loss priority. "
    ::= { jnxAnalyzerEntry 4 }


-- The ANALYZER INPUT Table

jnxAnalyzerInputTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF JnxAnalyzerInputEntry
    MAX-ACCESS  not-accessible
    STATUS      deprecated
    DESCRIPTION
        "An anlayzer Session is an association of several source ports to 
        a destination port.A range or series of ports can be mirrored in
        a session."
    ::= { jnxAnalyzerMIBObjects 2 }

jnxAnalyzerInputEntry OBJECT-TYPE
    SYNTAX      JnxAnalyzerInputEntry
    MAX-ACCESS  not-accessible
    STATUS      deprecated
    DESCRIPTION 
        "An Entry is created for each Input Source port."
    INDEX { jnxAnalyzerName, jnxAnalyzerInputValue } 
    ::= { jnxAnalyzerInputTable 1 }

JnxAnalyzerInputEntry ::= 
    SEQUENCE {
        jnxAnalyzerInputValue                   DisplayString,
        jnxAnalyzerInputOption                  INTEGER,
        jnxAnalyzerInputType                    INTEGER
    }

jnxAnalyzerInputValue OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..255))
    MAX-ACCESS  not-accessible
    STATUS      deprecated
    DESCRIPTION
        "This identifies each different analyzer input source.
        
        If the value of jnxAnalyzerInputType is 1 then jnxAnalyzerInputValue
        refers to the input source Interface Name.
        
        If the value of jnxAnalyzerInputType is 2 then jnxAnalyzerInputValue
        refers to the input source vlan name."
    ::= { jnxAnalyzerInputEntry 1 }

jnxAnalyzerInputOption  OBJECT-TYPE
    SYNTAX      INTEGER {
        ingress (1),
        egress  (2) 
    }
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
        "A source port is a switch port that is been mirrored. It can be 
        mirrored based either on Ingress(received) traffic or egress
        (transmitted) traffic.
        
        The goal of receive (or ingress) Analyzer is to monitor as much as 
        possible all the packets received by the source interface. The amount
        of received packets  mirrored to the destination port depends on the 
        mirroring ratio. A series or range of ingress ports can be mirrored 
        in an analyzer session.
        
        The goal of transmit (or egress) anlayzer is to monitor as much as 
        possible all the packets sent by the source interface. The amount 
        of egress packets mirrored to the destination port depends on the 
        mirroring ratio.The copy is provided after the packet is modified. 
        A range of egress ports can be mirrored in an analyzer session. 
        The value 1 corresponds to mirroring ingress traffic. The value 2 
        corresponds to mirroring egress traffic."
    ::= { jnxAnalyzerInputEntry 2 }

jnxAnalyzerInputType OBJECT-TYPE
    SYNTAX      INTEGER {
        interface (1),
        vlanname  (2)
    }
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
        "This specifies whether interfaces or VLANs is mirrored. 
        
        Mirroring can be done on the basis of the interface name.All packets
        received on a port configured for ingress mirroring is sent to the 
        analyzer port.All packets sent out on a port configured for egress 
        mirroring is sent to the analyzer port.Any number of network ports 
        can be configured for ingress or egress mirroring.The value one of
        jnxAnalayzerInputType corresponds to mirroring the interface traffic.

        On a particular switch, the user can choose to monitor all the ports 
        that belong to a particular VLAN. It is needed in order to analyze 
        the network traffic in one or more VLANs.Mirroring can be configured 
        in ingress direction only for VLAN.
        
        Mirroring can be done on the basis of VLAN name (supported only in
        ingress). All packets received on a particular VLAN are sent out to
        the analyzer.The value two of jnxAnalyzerInputType corresponds to 
        mirroring vlan traffic."
    ::= { jnxAnalyzerInputEntry 3 }


-- The ANALYZER OUTPUT Table            

jnxAnalyzerOutputTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF JnxAnalyzerOutputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table describes the destination port to which the traffic from 
        the source ports are copied."
    ::= { jnxAnalyzerMIBObjects 3 }

jnxAnalyzerOutputEntry OBJECT-TYPE
    SYNTAX      JnxAnalyzerOutputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An Entry is created for each destination port or destination vlan."
    INDEX { jnxAnalyzerName, jnxAnalyzerOutputValue }
    ::= { jnxAnalyzerOutputTable 1 }

JnxAnalyzerOutputEntry ::=
    SEQUENCE {
        jnxAnalyzerOutputValue                  DisplayString,
        jnxAnalyzerOutputType                   INTEGER
    }

jnxAnalyzerOutputValue  OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..255))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object identifies each different destination port or 
        destination vlan.
        
        If the value of jnxAnalyzerOutputType is 1 then jnxAnalyzerOutputValue
        gives the destination interface name.
        
        If the value of jnxAnalyzerOutputType is 2 then jnxAnalyzerOutputValue
        gives the destination vlan name."
    ::= { jnxAnalyzerOutputEntry 1 }

jnxAnalyzerOutputType OBJECT-TYPE
    SYNTAX      INTEGER {
        interface  (1),
        vlanname   (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The destination port can be on the same switch or on a different 
        switch(Remote Analyzer).

        Value 1 specifies that the destination interface is on the same 
        switch and it receives a copy of traffic from the source ports.
        The port does not transmit any traffic except that required for
        the analyzer session.
        
        The traffic for each Remote Analyzer session is carried over a 
        user-specified Remote Analyzer VLAN that is dedicated for that 
        Remote Analyzer session in all participating switches. A special 
        vlan is confgiured exclusively for remote mirroring by marking it 
        as analyzer vlan.  Intermediate switches will have a few ports
        (minimum of 2 ports )as members of the analyzer vlan. These
        are the trunk ports which act as the link between the switches.
        The analyzer ports on the destination switch are also added to 
        the Analyzer VLAN. 

        Value  2 specifies  that the traffic from all the source ports is 
        copied into the Remote Analyzer vlan specified by the vlan name.

        In the source switch the anlayzer session destination is given 
        as the analyzer vlan. In the intermediate switches the analyzer 
        sessions have the source and the destination as the analyzer vlan. 
        The packet will reach the destination ports as it will be a part 
        of the analyzer vlan."  
    ::= { jnxAnalyzerOutputEntry 2 }

-- jnxExAnalyzerInputTable Table

jnxExAnalyzerInputTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF JnxExAnalyzerInputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An anlayzer Session is an association of several source ports to
        a destination port.A range or series of ports can be mirrored in
        a session."
    ::= { jnxAnalyzerMIBObjects 4 }

jnxExAnalyzerInputEntry OBJECT-TYPE
    SYNTAX      JnxExAnalyzerInputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An Entry is created for each Input Source port."
    INDEX { jnxAnalyzerName, jnxExAnalyzerInputOption, jnxExAnalyzerInputValue }
    ::= { jnxExAnalyzerInputTable 1 }

JnxExAnalyzerInputEntry ::=
    SEQUENCE {
        jnxExAnalyzerInputOption                  INTEGER,
        jnxExAnalyzerInputValue                   DisplayString,
        jnxExAnalyzerInputType                    INTEGER
    }

jnxExAnalyzerInputOption  OBJECT-TYPE
    SYNTAX      INTEGER {
        ingress (1),
        egress  (2),
        vlan    (3)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A source port is a switch port that is been mirrored. It can be
        mirrored based either on Ingress(received) traffic or egress
        (transmitted) traffic.

        The goal of receive (or ingress) Analyzer is to monitor as much as
        possible all the packets received by the source interface. The amount
        of received packets  mirrored to the destination port depends on the
        mirroring ratio. A series or range of ingress ports can be mirrored
        in an analyzer session.

        The goal of transmit (or egress) anlayzer is to monitor as much as
        possible all the packets sent by the source interface. The amount
        of egress packets mirrored to the destination port depends on the
        mirroring ratio.The copy is provided after the packet is modified.
        A range of egress ports can be mirrored in an analyzer session.
        The value 1 corresponds to mirroring ingress traffic. The value 2
        corresponds to mirroring egress traffic. The value 3 corresponds to
        mirroring vlan ingress traffic."
    ::= { jnxExAnalyzerInputEntry 1 }

jnxExAnalyzerInputValue OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..255))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This identifies each different analyzer input source.

        If the value of jnxExAnalyzerInputType is 1 then jnxExAnalyzerInputValue
        refers to the input source Interface Name.

        If the value of jnxExAnalyzerInputType is 2 then jnxExAnalyzerInputValue
        refers to the input source vlan name."
    ::= { jnxExAnalyzerInputEntry 2 }

jnxExAnalyzerInputType OBJECT-TYPE
    SYNTAX      INTEGER {
        interface (1),
        vlanname  (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This specifies whether interfaces or VLANs is mirrored.

        Mirroring can be done on the basis of the interface name.All packets
        received on a port configured for ingress mirroring is sent to the
        analyzer port.All packets sent out on a port configured for egress
        mirroring is sent to the analyzer port.Any number of network ports
        can be configured for ingress or egress mirroring.The value one of
        jnxAnalyzerInputType corresponds to mirroring the interface traffic.

        On a particular switch, the user can choose to monitor all the ports
        that belong to a particular VLAN. It is needed in order to analyze
        the network traffic in one or more VLANs.Mirroring can be configured
        in ingress direction only for VLAN.

        Mirroring can be done on the basis of VLAN name (supported only in
        ingress). All packets received on a particular VLAN are sent out to
        the analyzer.The value two of jnxExAnalyzerInputType corresponds to
        mirroring vlan traffic."
    ::= { jnxExAnalyzerInputEntry 3 }

END